#ifndef __Render_CgShader_h__
#define __Render_CgShader_h__

#include "Render/Shader.h"

#include <Cg/Cg.h>
#include <Cg/CgGL.h>

#include <vector>

namespace vital {

	//--------------------------------------------------------------------------
	class TCgShader : public IShader {

	public:
		TCgShader(const CGtechnique &technique);
		virtual ~TCgShader();

		virtual size_t beginRender();

		virtual void beginPass(size_t passId);

		virtual void endPass();

		virtual void endRender();

	private:
		CGtechnique mCgTechnique;

		typedef std::vector<CGpass> CGpassList;
		CGpassList mPasses;

		size_t mCurPass;
	};

}

#endif	// __Render_CgShader_h__